package com.misyi.designpattern.facade;

/**
 * 没有使用外观模式
 *
 * @author licong
 * @date 2021-09-11 下午10:27
 */
public class WithoutFacadePatternDemo {

    public static void main(String[] args) {
        // 假设我们在子系统2中, 需要调用子系统 1 的三个模块的功能
        // 则需要分三次调用
        ModuleA moduleA = new ModuleA();
        ModuleB moduleB = new ModuleB();
        ModuleC moduleC = new ModuleC();

        moduleA.execute();
        moduleB.execute();
        moduleC.execute();

        // 问题:
        // 1. 对于子系统2来说, 维护成本太高, 就是因为要 care 多个子系统 1 的模块.
        //  如果只是三个模块还凑合, 如果是 20 个模块呢?
        // 2. 子系统 1 的多个模块组成的功能, 子系统 2 多处调用, 如果要增加一个模块D 的功能, 则维护成本太高
    }



    public static class ModuleA {

        public void execute() {
            System.out.println("子系统1的模块A的功能");
        }
    }

    public static class ModuleB {

        public void execute() {
            System.out.println("子系统1的模块B的功能");
        }
    }

    public static class ModuleC {

        public void execute() {
            System.out.println("子系统1的模块C的功能");
        }
    }

}
